package proxy

type Subject interface {
	Do() string
}
type RealSubject struct{}

func (RealSubject) Do() string {
	return "real:"
}

type Proxy struct {
	real RealSubject //具体主题角色
}

func (p Proxy) Do() string {
	var res string
	//调用真实对象代理之前工厂
	//检查缓存
	//权限配置
	//初始化信息
	//
	res += "pre:"
	res += p.real.Do()
	//调用之前之后
	//缓存结果
	//进行判断
	//荣群处理
	//
	res += "after"
	return res
}
